在開始今天的文章前,先跟大家釐清兩個名詞:
那就可以開始今天的教學,對工作表 Sheet 做操作!
在對儲存格作操作以前,最重要的是我們先必須拿到我們要操作的試算表 Spreadsheet
getActiveSpreadsheet()
  var curr_spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
openById(id) 
var ss = SpreadsheetApp.openById("abc1234567");
拿到 Spreadsheet 的物件後,就可以對他做各種操作啦~
接下來就介紹各種 Spreadsheet 相關的操作方法
getActiveSheet() & 所有工作表 getSheets()function getActiveSheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  Logger.log(sheet.getName()); // 輸出當前活動工作表的名稱
  
  var sheets = spreadsheet.getSheets();
  for (var i = 0; i < sheets.length; i++) {
    Logger.log(sheets[i].getName()); // 日誌中列出所有工作表的名稱
  }
}
getActiveSheet() 獲取當前選中的工作表對象。getSheets() 獲取包含所有工作表對象的陣列。
getName()/setName()function getSheetByName() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  if (sheet) {
    Logger.log(sheet.getName()); // 輸出工作表名稱 'Sheet1'
    sheet.setName('Renamed Sheet'); // 將'Sheet1'重新命名為'Renamed Sheet'
  }
}
setName(newName) 將工作表重命名為 newName。
insertSheet()/deleteSheet()function createSheet() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  spreadsheet.insertSheet('New Sheet', 0); // 創建名為'New Sheet'的新工作表並放在第一位
  
  var del_sheet = spreadsheet.getSheetByName('Sheet1');
  spreadsheet.deleteSheet(del_sheet); // 刪除名為'Sheet1'的工作表
}
insertSheet(name) 創建一個名稱為 name 的新工作表。insertSheet(name, sheetIndex) 將新工作表插入到指定的索引位置(例如 0 表示第一個位置)。deleteSheet(sheet) 刪除指定的工作表對象。
moveActiveSheet(position)// This example assumes that there are 2 sheets in the current
// active spreadsheet: one named "first" in position 1 and another named "second"
// in position 2.
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// Gets the "first" sheet and activates it.
var sheet = spreadsheet.getSheetByName("first").activate();
// Logs 'Current index of sheet: 1'
console.log("Current index of sheet: %s", sheet.getIndex());
spreadsheet.moveActiveSheet(2);
// Logs 'New index of sheet: 2'
console.log("New index of sheet: %s", sheet.getIndex());
moveActiveSheet(position) 將當前活動工作表移動到指定的索引位置。
copyTo(spreadsheet)function copySheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var targetSpreadsheet = SpreadsheetApp.openById('TARGET_SPREADSHEET_ID');
  sheet.copyTo(targetSpreadsheet); // 將當前工作表複製到指定試算表
}
copyTo(spreadsheet) 將當前工作表複製到指定的試算表。
getMaxRows()/getMaxColumns()function getSheetDimensions() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var maxRows = sheet.getMaxRows();
  var maxColumns = sheet.getMaxColumns();
  Logger.log('Rows: ' + maxRows + ', Columns: ' + maxColumns);
}
getMaxRows() 獲取工作表中的最大列數。getMaxColumns() 獲取工作表中的最大欄數。
insertRowBefore()/insertColumnBeforefunction insertRowsAndColumns() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.insertRowBefore(2); // 在第2行之前插入一行
  sheet.insertColumnBefore(1); // 在第1欄之前插入一欄
}
insertRowBefore(position) 在指定位置前插入一行。insertColumnBefore(position) 在指定位置前插入一欄。
恭喜你把 Google Sheet 的基本操作幾乎都學得差不多啦
明天將帶你進入 Google Sheet 的最後一章:RichTextValue 讓文字不只是文字